home *** CD-ROM | disk | FTP | other *** search
- ----------------------------------------------------------------------------
-
- FilePather 1.3
-
- by
-
- Johan Torin
-
- Approved and endorsed by Users Standards Group
-
- ----------------------------------------------------------------------------
-
- The programs and files in this distribution are freely distributable, as
- long as the archive remains intact, but are also Copyright © Johan Torin.
- They may be freely distributed as long as no more than a nominal fee is
- charged to cover time and copying costs. None of the files can be included
- with commercial distributions without written permission from the author.
-
- This product is provided as is without warranties of any kind: the
- author of this program cannot be held liable for any defects in the
- executable nor in the documentation or in any other files contained in
- this package. Any damage directly or indirectly caused by the use/misuse
- of FilePather is the sole responsibility of the user her/him self.
-
- However, if you use this program you MUST send a message to me! Either
- through email, or by ordinary snail mail. This is in your own interest if
- you want continued development of this project.
-
-
- What it does
- ------------
- FilePather will add a configurable line to a file called 'FilePath.lst' in
- archives or add the line in a textfile just before the '@End_FilePath.lst'.
- Repeated usage (BBSs, users) will create a list which will tell the history of
- the file, ie when it was where and by who. The name 'FilePath' has nothing to
- do with searchpath. Instead it is the PATH the FILE has taken to come to you.
-
- Features
- --------
- · Processes both standard archives & text files.
- · Totally configurable. Easy to add new archivers.
- · Built in AdStripper for text files!
- · Creates a database over names found if used in conjunction with FPBase.
- · Throughport - run other fileprocessors directly from FilePather.
- · Pure! That is; it can be made resident!
- · 100% assembler.
- · Enforcer & Mungwall proof.
- · Requires 2.04 to run (V37).
-
- I have tried to make the utility suit both the normal user/bbs and the
- 'elite' trader/board.
-
- Why?
- ----
- Don't you hate ads?! But in the same time you enjoy reading them since
- they might came from a new BBS or somewhere extremly far away like Asia,
- Australia or Säffle.
-
- FilePather was invented to provide a way of getting as much information as
- possible from as little bytes and files as possible. When you look in the
- 'FilePath.lst' file you can see all the steps the file has taken before it
- camed to you (provided all boards use FilePather =).
- It also makes it possible to add YOUR signature to a file without adding
- any extra files to an archive or more than 1 line of text to a textfile.
-
- And also, the AdDeleter for text files is extremly useful provided that
- FilePather has been used from the beginning. I took 20 random textfiles
- from my download directory and manually edited them so @Start_of_text and
- @End_of_text just enclosed the real text. After running FilePather the
- total size had decreased from 406946 to 297029 bytes, a decrease by
- 109917 bytes. And that was RANDOM files! Some where from PD boards and
- some had been in Lha archives. So the actual performace may be bigger,
- it's depends on if the file has been FilePatherized before. As an example
- I can mention that a file on 38k suddenly became 4k after FilePather...
-
- Installation
- ------------
- The provided installation script uses Commodores Installer utility, which
- you can find in several modern commercial and PD packages. The reason why
- I didn't included Installer is the filesize, over 100Kb. Ask your sysop
- for it.
-
- The installation script will install the executable and ask you for
- information like your name, location, phonenumber etc. These will
- be stored as environment variables in ENV:, so you don't have to think
- about entering difficult command strings. The script will also help the
- ordinary user with installing of a simple method of getting all your
- downloaded files FilePathed.
-
- Template
- --------
-
- FilePather [File] <file> Type <type> Name <name> [SysOp <sysop>]
- Location <location> Number <number(s)> [Custom <Custom_n=<string>>]
- [NextCommand <commandline>] [Workdir <workdir>] [SaveList <list>]
- [VarDir <dir>]
-
- Keywords can be typed in with any case mixture and can be entered in
- any order. Strings may be enclosed with double quotes (") OR single
- quotes ('), but it is only neccesary when the string contains spaces.
- Keywords enclosed with [] are optional.
-
- Explanation of keywords:
- [File] <file|dir> The file or directory to process. The switch
- 'FILE' are not neccesary, but then MUST the
- filename be first on the commandline.
- If a directory is specified, all files in
- that directory will be processed. Note! FP
- will not enter any subdirs!
-
- Type <type> The type of the person/program that started
- FilePather. ie. User,BBS,Trader,Board.
-
- Name <name> The name of the person/BBS etc that
- started the fileprocessing. ie. Mitnick,
- John Smith, Inside Out.
-
- [SysOp <sysop>] The sysops name if applicable.
-
- Location <location> Either the geographic location or the group.
-
- Number <number(s)> Number to the Person/Board. Should
- look like this: +Country code-(MIGHT be
- unneccesary digits)Areacode-Number_1|
- Number_2|Number_n
- ie. +46-0346-58697|59245
- If there are no number or you doesn't
- like to leave it out, set it to 'UNPUBL'.
-
- [Custom] This is an extension of the normal fields.
- For example:
- Size_of_HD=30Gb
- Amount_of_RAM=56Mb
- Processor=68060
- ClockFrequency=66Mhz
- Geographic_location=Säffle,Sweden
- Legend="As faster as better!"
- These are placed last on the 'FilePath.lst'
- line and are optional and totally up to you
- to decide about. However should you try to
- follow existing standards and not invent new
- fields if it already exists an appropriate
- one. See the file 'Custom_fields.txt'
- for more information.
-
- [NextCommand <commandline>] FilePather can spawn a new command which can
- be of interest in some BBS systems, which are
- only able to start ONE filechecker. Specify
- the command you want to be execute, putting
- '%f' (lowercase!) there you want the
- filename, and it will be started when
- FilePather is done. Use single quotes
- to enclose the NextCommand string. ie.
- NextCommand 'Echo "The file %f has been
- processed!"' ). If you want to redirect
- the command to a file, eg NIL:, then use
- the '%«' and '%»' instead of '<' and '>'
-
- [Workdir <workdir>] The directory there temporary files will be
- placed. Default is 'T:'. Must have either a
- ':' or a '/' appended on it.
-
- [Savelist <savelist>] Specifies the temporary file there the
- extracted 'FilePath.lst's will be appended.
- FilePather checks if FPBases public port
- can be found. If so, this filename will be
- passed for ASYNCRONOUSLY processing! ie:
- FilePather may (and will) quit before
- FPBase does. It might be be a good idea
- to use separate files if FilePather somehow
- is runned in multiple copies, as in a
- multinode BBS. (See the FPBase
- documentation for more information).
-
- [VarDir <dir>] If specified, FilePather will load its
- environment variables from this directory,
- thus make it possible to store them on disk
- instead of your precious memory. Note that
- the path MUST end with either ':' or '/'.
-
- [Notify] This keyword will enable Notify mode, ie
- FilePather will use FileSystem notify to
- autodetect files in a directory. This can
- be used to autoprocess up- or downloaded
- files if not a better solution exists.
- In this mode you can exit FilePather by
- sending it a Ctrl-C or D. Ctrl-C will
- immediately abort and quit FilePather, while
- Ctrl-D will tell FilePather to quit when
- there are no more files left. This trick can
- be used if the process number is unknown:
- Break D `Status com=C:FilePather`
-
- [TaskPri <taskpri>] This keyword sets the taskpriority for
- FilePather. Normally you shouldn't use
- values higher than 10 or lower than 10.
- It might be a good idea to check the
- priority of other tasks running at the
- same time as FilePather to make sure
- that they don't supress FilePather from
- running. This keyword is provided to be
- used in conjunction with NOTIFY, but may
- be used as wanted.
-
-
- Entering no arguments will show the template.
-
- Environment variables
- ---------------------
-
- Almost all command line keywords have a corresponding env. variable.
- This way it's possible to easy load the settings, and you doesn't have
- to struggle with the commandline each time you want to execute FilePather.
- These env. variables are used by FilePather 1.3:
- Type
- Name
- SysOp
- Location
- Number
- Custom
- SaveList
- NextCommand
- FP_PrefsDir
-
- The last one, 'FP_PrefsDir', must reside directly in ENVARC:/ENV:, as
- it holds path to the directory where all other variables are loaded from.
- Thus it's possible to store the env. variables on another device than
- the ram disk. This variable is shared with FPBase. If the variable isn't
- found, FPBase will default to 'ENV:FilePather/'.
-
- Be careful to NOT enter any linefeeds in the variables that are used
- for the FilePather line! These are also put on the line, forcing the
- FilePather line to actually be two or more lines! _Always_ check the
- line output after editing the variables!
-
- Furthermore, FilePather tries to load environment variables with
- names based on the files suffix, to use when extracting/updating
- the FilePath.lst. Se 'Configuration of (un)packers' for more
- information. The information provided in that section applies for
- the NextCommand variable as well.
-
- Example command lines
- ---------------------
-
- FilePather "Data:Download/Coolness.lha" Type "Board" Name "Inside Out"
- SysOp "Cateye" Location "Insane^Reflex" Number "+46-0346-58697|59245"
- NextCommand 'IStrip "%f"' Workdir "Dh0:Temp/"
-
- To run it from DirOpus (%f = insert filename here (for Dopus!)):
- FilePather File "%f" Type "User" Name "Mitnick" Location "Reflex"
- Number "+46-035-UNPUBL"
-
- Or, when using the environment variables:
- FilePather "Data:Download/Enf3762.lha" Custom 'Legend="As faster as better!"'
-
- Notice the use of single quotes since the string itself contains
- doublequotes!
-
- To autoscan a directory for files:
- FilePather DATA:Tmp_DL/ Notify NextCommand 'Rename "%f" DATA:Download/'
-
- NOTE! Don't forget to move the file after the processing! Look in
- 'Tricks.txt' for more information!
-
-
- Finally, if you want to add some more custom fields to the string in
- the env. variable, use this 'trick':
- FilePather "Enf3762.lha" Custom '${FilePather/Custom} Node=8'
-
- The contents of the environment variable 'ENV:FilePather/Custom' will
- be inserted on the command line before 'Node=8'.
-
-
- The text ad deleter
- --------------------
- When FilePather process a text file it will strip all text before
- '@Start_of_text' and all text after '@End_of_text'. If not found it will
- add them so that next time the file is processed, FilePather (or any other
- tool supporting this) will strip eventual ads.
-
- Also, the FILE_ID.DIZ text will be moved to the top of the file. For
- example, if the file looked like this:
- ----------------------------------------------------------------------------
- /\/\/\/\/\/\/\/\
- > FrontBanner! <
- \/\/\/\/\/\/\/\/
- @Begin_FilePath.lst
- Board Inside Out Cateye/Insane 03:24 27-08-94 +46-0346-58697|59245 Size_HD=500Mb Legend="As faster as better!"
- @End_FilePath.lst
- @Start_of_text
-
- Text 1
-
- @BEGIN_FILE_ID.DIZ----------------------------------
- | Einstein rules relatively ok! |
- ----------------------------------
- @END_FILE_ID.DIZ
-
- Text 2
-
- @End_of_text
- /\/\/\/\/\/\/\/\
- > BackBanner!! <
- \/\/\/\/\/\/\/\/
- ----------------------------------------------------------------------------
-
- It will look like this after FilePatherizing:
- ----------------------------------------------------------------------------
- @Begin_FilePath.lst
- Board Inside Out Cateye/Insane 03:24 27-08-94 +46-0346-58697|59245 Size_HD=500Mb Legend="As faster as better!"
- User Mitnick Reflex 18:26 28-08-94 +46-035-UNPUBL
- @End_FilePath.lst
- @BEGIN_FILE_ID.DIZ----------------------------------
- | Einstein rules relatively ok! |
- ----------------------------------
- @END_FILE_ID.DIZ
- @Start_of_text
-
- Text 1
-
-
- Text 2
-
- @End_of_text
- ----------------------------------------------------------------------------
-
- If you like to add the strings to the textfiles you write yourself,
- I suggest that you make a macro in your texteditor that:
- Jumps to the beginning of the file.
- Inserts '@Start_of_text'.
- Jumps to the end of the file.
- Inserts '@End_of_text'.
- This is easier and safer (no spell errors).
-
-
- Other archive formats
- ---------------------
- But DMS when?! Well, as long as not anyone else write support for it, you
- have to live without it! I had thoughts about adding internal support for
- DMS archives, but after looking at the fileformat for DMS I dropped that
- project. LhA 3.0 is said to have track compression, and will probably
- (hopefully) take DMS's role as the main track compression program. DMS
- really sucks...
-
- For various file oriented archives I have already prepared for the
- implementation of those.
-
- Configuration of (un)packers
- ----------------------------
-
- (The information provided in this section more or less applies for the
- NextCommand variable/keyword as well.)
-
- When FilePather examines a file it tries to get two environment variables
- with the names '.(suffix)_extract' and'.(suffix)_update'. For example:
- '.Lha_extract' and '.Lha_update'. The extract string may look something
- like this:
- Lha e -q "%f" FilePath.lst "%t/"
-
- and the update string:
- Lha u -q "%f" "%t/FilePath.lst"
-
- '%f' will be expanded to the archive filename and '%t' will be expanded to
- the work directory looking like; (Workdir)(Random dir name), for
- example: 'T:090fe93a'. T: is the default but may be changed with the
- 'Workdir' option. An complete expanded string:
- Lha e -q "Ram:intel.lha" FilePath.lst "T:090fe93a/"
-
-
- Here is a list of all percent strings used in FilePather. Note that some
- of them are probably only useful internally. '%%' may be used instead of
- '%' if neccesary.
-
- Char String
- ------------------------------------------------------------------------
- f The object filename as entered on the command line.
- t Temporary work directory. Workdir+Random, ie 'T:900ec120'
- v Environment variable directory.
- s The suffix of the file (eg. '.lha'.
- « The '<' sign.
- » The '>' sign.
- = Nothing. Specifying this will force FilePather to put the return
- code from the executed command through to the Dos. This way a
- filechecker may be used in the the Nextcommand OR the extract/update
- strings.
-
-
- Currently there is one internal mode. Setting the extract string to
- 'INTERNAL_TXT' forces FilePather to treat the file as text.
-
- Note that the suffix might be longer or shorter than 3 characters. For
- example: '.guide' or '.h8'.
-
- NOTE! From FilePather 1.3 is it possible to more or less use the
- environment variables as script files.
-
-
- Making it resident
- ------------------
- Well, for you out there with no idea how to make a command resident I will
- show you how:
-
- Resident C:FilePather PURE
-
- (Put it in your User-Startup or likewise)
- PURE incase the P bit isn't set in the protection mask. FilePather will
- now run much faster since it doesn't have to reload from disk each time.
- Speed ((have you seen the movie? Quite cool!)) will also increase if you
- make LhA and other archivers resident.
-
- History
- -------
- 1.0 - 9 Sep 1994
- · Wrote it. Many betatests and changes. The FP line was redesigned
- a few times.
- 1.1ß - Never released
- · Fixed silly bug that supressed the output of the filename. The file was
- processed though.
- · Added the 'SaveList' keyword and interfacecode for FPBase.
- · Fixed text output speed which was REALLY slow. Still more to do
- in that area...
- · Lost count on things added. Lots of stuff where fixed.
- 1.2ß - 29 Jan 1995 - Betarelease
- · Made the fields wider by adding more TABS.
- · If an archive didn't exist, FP would create a new one! Now fixed.
- · FP would crash if a textfile was too small! (Only in FP 1.1)
- · Added workaround for bug in ParNFS (ParNet). 4 bytes long :)
- · Added code for processing whole directories.
- · Fixed silly mistake in the GetVar() code. Now possible to have
- strings with more than one line. Thanks to NeuroDancer for this one!
- · Added the VarDir keyword and the FP_PrefsDir env. variable. Another
- NeuroDancer idea, although I had planned for it.
- · Rewrote the installation script. (OPS! Major bugs in that one!)
- · Finally fixed the scriptfile. Still stuff to do there!
- · Fixed various bugs.
- 1.3ß - 20 Feb 1995
- · Fixed bugs in installation script. (NeuroDancer & Peter Bornhall)
- · Added break CTRL-C code when processing whole directory.
- · Added Notify code, to autodetect (down/uploaded) files in a directory.
- · FP would insert a TAB in the line, even if there was no Custom field.
- · Added the %=, %«, and %» strings.
- 1.3 - 8 April 1995
- · Changed the Lha & Lzh update variables to default to non-recursive
- collecting. Discovered by the one and only: Kent Larsson! :)
- · FilePather would return weird returncodes. (Henric Andersson)
- · Edited the guide file from Dreamer (sorry! :) Thanks!
-
-
- Bugs
- ----
- · The same date and time will be used on all files in a directory.
- · The FilePath.lst file is not always deleted from the temporary directory
- on some systems. Looks to have something to do with the
- phase of the moon...
-
- To do
- -----
- · NextCommand environment variables for each suffix - like extract/update.
- · Safe saves in text mode?
- · More help on installing it on a BBS.
- · 'Previous Lines Format Checker' - Delete illegal lines!
- · Extract FileId.diz and FileDesc and add them together with the filename
- to a file, thus creating a list over all files downloaded.
- · Possiblity to recognize files by their contents (ie. pictures, modules,
- etc.) and add the FilePather line in the file. Should be no sweat for
- IFF files. This will probably require external extractors/updaters.
- · The notify code isn't really that nice. Ok, it works, but...
-
- FP Utilities I want to see/make
- -------------------------------
-
- For BBSs:
- Name checker - Warn about a specific BBS/User who have touched the file!
-
- For users:
- FilePath.lst viewer - Present all information from each line in a nice way
- Text file ad deleter - Delete ads and set @Start/End_of_text (user control)
-
- Other BBS utils:
- SuperNuker - Give 10*(total sum of _unpacked_ ads) in minus credits!
- That will show them!
-
- Acknowledgements
- ----------------
-
- Disclaimer stolen from some PD archives. (WHO has written that text
- orginally?) Icons stolen. Layout of doc stolen. Source NOT stolen!
-
- First, a big thanks to my beta testers (random):
- Anders Gustafsson
- NeuroDancer/Abyss (German support and clever suggestions)
- Kent Larsson
- Peter Bornhall (Lots of ideas and brainstorming)
- Daniel Celion
- Vicente Nicola (My support board! :)
- John Hertell AKA Chucky/Virtual (For almost writing the AmiX help! :)
- Magnus Johnson
- Henric Andersson
- Martin Larsson
- Micke Persson
-
- I KNOW I have forgot someone here! :) Mail me if you want be in the list!
-
- Some hi and ho to (random):
- Xerxes/FLT^RLX - A shame I don't call more often!
- Franky/Purple Turtle (Belgium) - Hope to see you at the next Party!
- Anti-g/Sht!/Unl. (Germany) - For the Tempest installation text.
- dReamer/sHoot!/1oo%! - For the .Guide file! It's really nice! Sorry for
- ruining your layout! :)
- All the sysops on the boards I call and all I have forgotten...
- All nice people that have emailed me and I have forgot...
- My faithful Amys...
-
- How to contact me
- -----------------
-
- Preferably you send e-mail to:
- Fido: 2:203/804.13
- Email: JTorin@Academy.Bastad.se or
- JT@p13.f804.n203.z2.Fidonet.Org
-
- Try calling Wedlock BBS - +46-(0)35-186514 - 2:203/807.0@Fidonet
-
- Or (last chance) SnailMail:
-
- Johan Torin
- Fotstad
- S-313 03 Åled
- Sweden
-
-